package Text20;

import java.util.*;

public class Main {
    //    农夫和牛都位于数轴上，农夫起始位于点 N，牛位于点 K。
//    农夫有两种移动方式：从 X移动到 X−1或 X+1，每次移动花费一分钟
//    从 X移动到 2∗X，每次移动花费一分钟
//    假设牛没有意识到农夫的行动，站在原地不动。
//    农夫最少要花多少时间才能抓住牛？
    static int N = (int) 1e5 + 10, n, k;
    static int[] st = new int[N];

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        n = in.nextInt();
        k = in.nextInt();
        System.out.println(bfs());
    }

    private static int bfs() {
        Queue<Integer> q = new LinkedList<>();
        q.offer(n);
        Arrays.fill(st, -1);
        st[n] = 0;
        while (!q.isEmpty()) {
            int t = q.poll();
            if (t == k) {
                return st[t];
            }
            if (t + 1 < N && st[t + 1] == -1) {
                st[t + 1] = st[t] + 1;
                q.offer(t + 1);
            }
            if (t - 1 >= 0 && st[t - 1] == -1) {
                st[t - 1] = st[t] + 1;
                q.offer(t - 1);
            }
            if (2 * t < N && st[2 * t] == -1) {
                st[2 * t] = st[t] + 1;
                q.offer(2 * t);
            }
        }
        return -1;
    }
}
